// // 头文件 -> 显示时间和文件
// const { min } = require('moment')
// const headShow = require('./head')
// console.log(headShow.headShow(__filename))

// -----------------------------
// 题目: leetcode 76
// 描述:
//      给你一个字符串 s 、一个字符串 t 。
//      返回 s 中涵盖 t 所有字符的最小子串。
//      如果 s 中不存在涵盖 t 所有字符的子串，则返回空字符串 "" 。

/**
 * 返回 s 中涵盖 t 所有字符的最小子串。
 * @param {string} s 原数组
 * @param {string} t 所求子串
 * @return {string}
 */
var minWindow = function (s, t) {
  //需要覆盖的字符串频数
  let need = {}
  //滑动窗口的字符串频数
  let window = {}

  for (let a of t) {
    //统计t中字符频数
    need[a] = (need[a] || 0) + 1
  }
  console.log(need)

  //左右指针
  let left = 0
  let right = 0

  //滑动窗口中能覆盖的字符种类数
  let valid = 0

  //最小覆盖子串的起始索
  let start = 0
  //最小覆盖子串长度
  let len = Number.MAX_VALUE

  while (start < s.length) {
    // 要push的新字符
    let char = s[start]

    // 右指针滑动
    start++

    // 所要加入字符串 符合 需求
    if (need[c]) {
      // 放入 window
      window[c] = (window[c] || 0) + 1

      // 判断能否对齐
      if (window[c] === need[c]) {
        valid++
      }
    }

    // 条件符合可以左滑窗口
    if (valid === Object.keys(need).length){
        
    }
    
    
    

    console.log(char)
  }
}

//
let s = 'ADOBECODEBANC'
let t = 'ABC'

minWindow(s, t)
